package ConvertString

import (
	"errors"
	"gitee.com/tym_hmm/mahonia"
)

/**
字符串编码转换
@param src string 原字符串
@param srcCode string 原编码
@param tagCode string 目标编码
*/
func ConvertToString(src string, srcCode string, tagCode string) (string, error) {
	if len(src) == 0 || len(srcCode) == 0 || len(tagCode) == 0 {
		return "", errors.New("input arguments error")
	}

	srcCoder := mahonia.NewDecoder(srcCode)
	srcResult := srcCoder.ConvertString(src)
	tagCoder := mahonia.NewDecoder(tagCode)
	_, cdata, _ := tagCoder.Translate([]byte(srcResult), true)
	result := string(cdata)
	return result, nil
}

/**
写入指定编码
@param src string [true] 源字符串
@param tagCode string [true] 指定编码
*/
func ConvertStringEncode(src string, tagCode string) string {
	enc := mahonia.NewEncoder(tagCode)
	return enc.ConvertString(src)
}
